// 对于axios二次封装
import axios from 'axios'

// 引入进度条
import nprogress from 'nprogress'

// 引入进度条的样式
import "nprogress/nprogress.css"
// nprogress.start :进度条开始  nprogress.done：进度条结束
import store from '@/store'
// 利用axios对象的方法创建一个axios实例
// 重新配置一下axios
const requests = axios.create({
    // 配置对象：
    baseURL: '/api', //基础路径，路径会自动加上/api，不需要每次自己手动写
    timeout: 5000, // 超时时间
})

// 请求拦截器：在发送请求之前，请求拦截器可以检测到，可在请求发出之前做些操作
requests.interceptors.request.use((config)=>{
    if(store.state.detail.uuid_token) {
        config.headers.userTempId = store.state.detail.uuid_token
    }
    if(localStorage.getItem('TOKEN')) {
        config.headers.token = localStorage.getItem('TOKEN')
    } else {
        console.log('token为null');
    }
    // config:配置对象，对象里面有一个很重要的属性：header请求头
    nprogress.start()
    return config
})

requests.interceptors.response.use((res)=>{
    // 服务器响应成功
    nprogress.done()
    return res.data
}, (error) => {
    // 服务器响应失败
    return Promise.reject(new Error('faile'))
})

export default requests